[INFO] fetching crate matching_engine 0.1.8...
[INFO] testing matching_engine-0.1.8 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate matching_engine 0.1.8 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate matching_engine 0.1.8
[INFO] finished tweaking crates.io crate matching_engine 0.1.8
[INFO] tweaked toml for crates.io crate matching_engine 0.1.8 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate matching_engine 0.1.8 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate matching_engine 0.1.8 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c614945c1faf5503042de8dbec5ce29155e05e5db9005d7b86d8d377bbab2908
[INFO] running `Command { std: "docker" "start" "-a" "c614945c1faf5503042de8dbec5ce29155e05e5db9005d7b86d8d377bbab2908", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c614945c1faf5503042de8dbec5ce29155e05e5db9005d7b86d8d377bbab2908", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c614945c1faf5503042de8dbec5ce29155e05e5db9005d7b86d8d377bbab2908", kill_on_drop: false }`
[INFO] [stdout] c614945c1faf5503042de8dbec5ce29155e05e5db9005d7b86d8d377bbab2908
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fc22d0d04490f2559b3706ccce321179fb846cff0217b9d9c406f2eaa756017e
[INFO] running `Command { std: "docker" "start" "-a" "fc22d0d04490f2559b3706ccce321179fb846cff0217b9d9c406f2eaa756017e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling proc-macro2 v1.0.68
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling rustix v0.38.17
[INFO] [stderr]    Compiling linux-raw-sys v0.4.8
[INFO] [stderr]    Compiling serde v1.0.188
[INFO] [stderr]    Compiling bitflags v2.4.0
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]    Compiling ryu v1.0.15
[INFO] [stderr]    Compiling itoa v1.0.9
[INFO] [stderr]    Compiling regex-syntax v0.7.5
[INFO] [stderr]    Compiling serde_json v1.0.107
[INFO] [stderr]    Compiling unicode-width v0.1.11
[INFO] [stderr]    Compiling aho-corasick v1.1.1
[INFO] [stderr]    Compiling csv-core v0.1.11
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling termcolor v1.3.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.57
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling is-terminal v0.4.9
[INFO] [stderr]    Compiling colored v2.0.4
[INFO] [stderr]    Compiling chrono v0.4.31
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling getrandom v0.2.10
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling regex-automata v0.3.9
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.188
[INFO] [stderr]    Compiling regex v1.9.6
[INFO] [stderr]    Compiling env_logger v0.10.0
[INFO] [stderr]    Compiling csv v1.3.0
[INFO] [stderr]    Compiling prettytable-rs v0.10.0
[INFO] [stderr]    Compiling matching_engine v0.1.8 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/lib.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{error, info};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::DefaultHasher`
[INFO] [stdout]    --> src/model/domain.rs:642:9
[INFO] [stdout]     |
[INFO] [stdout] 642 |     use std::collections::hash_map::DefaultHasher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]    --> src/model/domain.rs:643:21
[INFO] [stdout]     |
[INFO] [stdout] 643 |     use std::hash::{Hash, Hasher};
[INFO] [stdout]     |                     ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]    --> src/model/domain.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |     use log::debug;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `create_order_book` and `read_input`
[INFO] [stdout]    --> src/model/domain.rs:647:32
[INFO] [stdout]     |
[INFO] [stdout] 647 |     use crate::common::utils::{create_order_book, read_input};
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher`
[INFO] [stdout]    --> src/model/domain.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |     use crate::matchers::fifo_matcher::FIFOMatcher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::matchers::matcher::Matcher`
[INFO] [stdout]    --> src/model/domain.rs:649:9
[INFO] [stdout]     |
[INFO] [stdout] 649 |     use crate::matchers::matcher::Matcher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook`
[INFO] [stdout]    --> src/model/domain.rs:650:32
[INFO] [stdout]     |
[INFO] [stdout] 650 |     use crate::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stdout]     |                                ^^^^  ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/matchers/fifo_matcher.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read
[INFO] [stdout]   --> src/matchers/prorata_matcher.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         ex_cum_qty = ex_fill.cum_qty();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut file = OpenOptions::new()
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let mut log_message = format!("\n{}-{}", formatted_timestamp, message);
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut ob = utils::create_order_book(input);
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used
[INFO] [stdout]   --> src/matchers/fifo_matcher.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl FIFOMatcher {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |      fn sum_of_filled_quantities(&self, fills: &Vec<Fill>, side: Side) -> u32 {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn print_fills(&self, fills: Vec<Fill>, side: Side) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/model/domain.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 187 |         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 187 -         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout] 187 +         let float_bits: u64 = unsafe { f64::to_bits(self.price) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `Sender`
[INFO] [stdout]  --> src/main.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.98s
[INFO] running `Command { std: "docker" "inspect" "fc22d0d04490f2559b3706ccce321179fb846cff0217b9d9c406f2eaa756017e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc22d0d04490f2559b3706ccce321179fb846cff0217b9d9c406f2eaa756017e", kill_on_drop: false }`
[INFO] [stdout] fc22d0d04490f2559b3706ccce321179fb846cff0217b9d9c406f2eaa756017e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c1a91b679ffc0547aa8884d75b82b494ca32d58bbb6d9950c25eeafc97cbd67a
[INFO] running `Command { std: "docker" "start" "-a" "c1a91b679ffc0547aa8884d75b82b494ca32d58bbb6d9950c25eeafc97cbd67a", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/lib.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{error, info};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::DefaultHasher`
[INFO] [stdout]    --> src/model/domain.rs:642:9
[INFO] [stdout]     |
[INFO] [stdout] 642 |     use std::collections::hash_map::DefaultHasher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]    --> src/model/domain.rs:643:21
[INFO] [stdout]     |
[INFO] [stdout] 643 |     use std::hash::{Hash, Hasher};
[INFO] [stdout]     |                     ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]    --> src/model/domain.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |     use log::debug;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `create_order_book` and `read_input`
[INFO] [stdout]    --> src/model/domain.rs:647:32
[INFO] [stdout]     |
[INFO] [stdout] 647 |     use crate::common::utils::{create_order_book, read_input};
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher`
[INFO] [stdout]    --> src/model/domain.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |     use crate::matchers::fifo_matcher::FIFOMatcher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::matchers::matcher::Matcher`
[INFO] [stdout]    --> src/model/domain.rs:649:9
[INFO] [stdout]     |
[INFO] [stdout] 649 |     use crate::matchers::matcher::Matcher;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook`
[INFO] [stdout]    --> src/model/domain.rs:650:32
[INFO] [stdout]     |
[INFO] [stdout] 650 |     use crate::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stdout]     |                                ^^^^  ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/matchers/fifo_matcher.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read
[INFO] [stdout]   --> src/matchers/prorata_matcher.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         ex_cum_qty = ex_fill.cum_qty();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut file = OpenOptions::new()
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let mut log_message = format!("\n{}-{}", formatted_timestamp, message);
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut ob = utils::create_order_book(input);
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used
[INFO] [stdout]   --> src/matchers/fifo_matcher.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl FIFOMatcher {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |      fn sum_of_filled_quantities(&self, fills: &Vec<Fill>, side: Side) -> u32 {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn print_fills(&self, fills: Vec<Fill>, side: Side) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/model/domain.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 187 |         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 187 -         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout] 187 +         let float_bits: u64 = unsafe { f64::to_bits(self.price) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling matching_engine v0.1.8 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Receiver` and `Sender`
[INFO] [stdout]  --> src/main.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `Sender`
[INFO] [stdout]  --> src/main.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrderBook`
[INFO] [stdout]  --> tests/pro_rata_matcher_tests.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use matching_engine::model::domain::{Fill, OrderBook};
[INFO] [stdout]   |                                            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrderBook`
[INFO] [stdout]  --> tests/fifo_matcher_tests.rs:4:44
[INFO] [stdout]   |
[INFO] [stdout] 4 | use matching_engine::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stdout]   |                                            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_fills`
[INFO] [stdout]   --> tests/fifo_matcher_tests.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let client_fills: Vec<Fill> = fills.clone().into_iter().filter(|f| f.side() == Buy).collect();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_fills`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex_fills`
[INFO] [stdout]   --> tests/fifo_matcher_tests.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let ex_fills: Vec<Fill> = fills.clone().into_iter().filter(|f| f.side() == Sell).collect();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ex_fills`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/lib.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{error, info};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrderBook`
[INFO] [stdout]    --> src/model/domain.rs:650:38
[INFO] [stdout]     |
[INFO] [stdout] 650 |     use crate::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stdout]     |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/matchers/fifo_matcher.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrderBook`
[INFO] [stdout]    --> src/matchers/fifo_matcher.rs:231:38
[INFO] [stdout]     |
[INFO] [stdout] 231 |     use crate::model::domain::{Fill, OrderBook};
[INFO] [stdout]     |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model/domain.rs:693:13
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut ob = create_order_book(read_input("test_data/orders.txt"));
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/model/domain.rs:694:13
[INFO] [stdout]     |
[INFO] [stdout] 694 |         let key = &String::from("IBM");
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matchers/fifo_matcher.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut fifo = FIFOMatcher;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matchers/fifo_matcher.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let mut fifo = FIFOMatcher;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read
[INFO] [stdout]   --> src/matchers/prorata_matcher.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         ex_cum_qty = ex_fill.cum_qty();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut file = OpenOptions::new()
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/common/utils.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let mut log_message = format!("\n{}-{}", formatted_timestamp, message);
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut ob = utils::create_order_book(input);
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used
[INFO] [stdout]   --> src/matchers/fifo_matcher.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl FIFOMatcher {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |      fn sum_of_filled_quantities(&self, fills: &Vec<Fill>, side: Side) -> u32 {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn print_fills(&self, fills: Vec<Fill>, side: Side) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/model/domain.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 187 |         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 187 -         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stdout] 187 +         let float_bits: u64 = unsafe { f64::to_bits(self.price) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.69s
[INFO] running `Command { std: "docker" "inspect" "c1a91b679ffc0547aa8884d75b82b494ca32d58bbb6d9950c25eeafc97cbd67a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1a91b679ffc0547aa8884d75b82b494ca32d58bbb6d9950c25eeafc97cbd67a", kill_on_drop: false }`
[INFO] [stdout] c1a91b679ffc0547aa8884d75b82b494ca32d58bbb6d9950c25eeafc97cbd67a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1fbdd61fb25fd480e418881db5d08b8b34db71eaa78b1db2e0b541e6979c69a2
[INFO] running `Command { std: "docker" "start" "-a" "1fbdd61fb25fd480e418881db5d08b8b34db71eaa78b1db2e0b541e6979c69a2", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `info`
[INFO] [stderr]   --> src/lib.rs:10:18
[INFO] [stderr]    |
[INFO] [stderr] 10 | use log::{error, info};
[INFO] [stderr]    |                  ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::hash_map::DefaultHasher`
[INFO] [stderr]    --> src/model/domain.rs:642:9
[INFO] [stderr]     |
[INFO] [stderr] 642 |     use std::collections::hash_map::DefaultHasher;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Hash` and `Hasher`
[INFO] [stderr]    --> src/model/domain.rs:643:21
[INFO] [stderr]     |
[INFO] [stderr] 643 |     use std::hash::{Hash, Hasher};
[INFO] [stderr]     |                     ^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log::debug`
[INFO] [stderr]    --> src/model/domain.rs:645:9
[INFO] [stderr]     |
[INFO] [stderr] 645 |     use log::debug;
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `create_order_book` and `read_input`
[INFO] [stderr]    --> src/model/domain.rs:647:32
[INFO] [stderr]     |
[INFO] [stderr] 647 |     use crate::common::utils::{create_order_book, read_input};
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher`
[INFO] [stderr]    --> src/model/domain.rs:648:9
[INFO] [stderr]     |
[INFO] [stderr] 648 |     use crate::matchers::fifo_matcher::FIFOMatcher;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::matchers::matcher::Matcher`
[INFO] [stderr]    --> src/model/domain.rs:649:9
[INFO] [stderr]     |
[INFO] [stderr] 649 |     use crate::matchers::matcher::Matcher;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook`
[INFO] [stderr]    --> src/model/domain.rs:650:32
[INFO] [stderr]     |
[INFO] [stderr] 650 |     use crate::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stderr]     |                                ^^^^  ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/matchers/fifo_matcher.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufRead`
[INFO] [stderr]  --> src/lib.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::BufRead;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `ex_cum_qty` is never read
[INFO] [stderr]   --> src/matchers/prorata_matcher.rs:84:9
[INFO] [stderr]    |
[INFO] [stderr] 84 |         ex_cum_qty = ex_fill.cum_qty();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/common/utils.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     let mut file = OpenOptions::new()
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/common/utils.rs:129:9
[INFO] [stderr]     |
[INFO] [stderr] 129 |     let mut log_message = format!("\n{}-{}", formatted_timestamp, message);
[INFO] [stderr]     |         ----^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |     let mut ob = utils::create_order_book(input);
[INFO] [stderr]    |         ----^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `sum_of_filled_quantities` and `print_fills` are never used
[INFO] [stderr]   --> src/matchers/fifo_matcher.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl FIFOMatcher {
[INFO] [stderr]    | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 20 |      fn sum_of_filled_quantities(&self, fills: &Vec<Fill>, side: Side) -> u32 {
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     fn print_fills(&self, fills: Vec<Fill>, side: Side) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/model/domain.rs:187:40
[INFO] [stderr]     |
[INFO] [stderr] 187 |         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 187 -         let float_bits: u64 = unsafe { std::mem::transmute(self.price) };
[INFO] [stderr] 187 +         let float_bits: u64 = unsafe { f64::to_bits(self.price) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `OrderBook`
[INFO] [stderr]    --> src/model/domain.rs:650:38
[INFO] [stderr]     |
[INFO] [stderr] 650 |     use crate::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stderr]     |                                      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `OrderBook`
[INFO] [stderr]    --> src/matchers/fifo_matcher.rs:231:38
[INFO] [stderr]     |
[INFO] [stderr] 231 |     use crate::model::domain::{Fill, OrderBook};
[INFO] [stderr]     |                                      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/model/domain.rs:693:13
[INFO] [stderr]     |
[INFO] [stderr] 693 |         let mut ob = create_order_book(read_input("test_data/orders.txt"));
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]    --> src/model/domain.rs:694:13
[INFO] [stderr]     |
[INFO] [stderr] 694 |         let key = &String::from("IBM");
[INFO] [stderr]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/matchers/fifo_matcher.rs:321:13
[INFO] [stderr]     |
[INFO] [stderr] 321 |         let mut fifo = FIFOMatcher;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/matchers/fifo_matcher.rs:354:13
[INFO] [stderr]     |
[INFO] [stderr] 354 |         let mut fifo = FIFOMatcher;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/common/utils.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     let mut file = OpenOptions::new()
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `matching_engine` (lib) generated 16 warnings (run `cargo fix --lib -p matching_engine` to apply 13 suggestions)
[INFO] [stderr] warning: `matching_engine` (lib test) generated 15 warnings (8 duplicates) (run `cargo fix --lib -p matching_engine --tests` to apply 7 suggestions)
[INFO] [stderr] warning: unused import: `OrderBook`
[INFO] [stderr]  --> tests/fifo_matcher_tests.rs:4:44
[INFO] [stderr]   |
[INFO] [stderr] 4 | use matching_engine::model::domain::{Fill, OrderBook, OrderBookKey};
[INFO] [stderr]   |                                            ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client_fills`
[INFO] [stderr]   --> tests/fifo_matcher_tests.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 48 |     let client_fills: Vec<Fill> = fills.clone().into_iter().filter(|f| f.side() == Buy).collect();
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_fills`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ex_fills`
[INFO] [stderr]   --> tests/fifo_matcher_tests.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |     let ex_fills: Vec<Fill> = fills.clone().into_iter().filter(|f| f.side() == Sell).collect();
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ex_fills`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Receiver` and `Sender`
[INFO] [stderr]  --> src/main.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::mpsc::{Receiver, Sender};
[INFO] [stderr]   |                       ^^^^^^^^  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread::JoinHandle`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::thread::JoinHandle;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `OrderBook`
[INFO] [stderr]  --> tests/pro_rata_matcher_tests.rs:3:44
[INFO] [stderr]   |
[INFO] [stderr] 3 | use matching_engine::model::domain::{Fill, OrderBook};
[INFO] [stderr]   |                                            ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `matching_engine` (test "fifo_matcher_tests") generated 3 warnings (run `cargo fix --test "fifo_matcher_tests" -p matching_engine` to apply 3 suggestions)
[INFO] [stderr] warning: `matching_engine` (bin "matching_engine" test) generated 2 warnings (run `cargo fix --bin "matching_engine" -p matching_engine --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `matching_engine` (test "pro_rata_matcher_tests") generated 1 warning (run `cargo fix --test "pro_rata_matcher_tests" -p matching_engine` to apply 1 suggestion)
[INFO] [stderr] warning: `matching_engine` (bin "matching_engine") generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/matching_engine-c3b39b55fa9034a7)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] test common::utils::tests::test_values ... ok
[INFO] [stdout] test formatters::json_formatter::tests::test_serialize_fill_and_order ... ok| Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status |
[INFO] [stdout] 
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 300 | 602.5 | id1             | id2               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------test matchers::fifo_matcher::tests::test_order_match_after_order_book_match ... ok
[INFO] [stdout] ------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 300 | 602.5 | id2             | id1               | Sell | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 100 | 602.5 | id3             | id4               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 100 | 602.5 | id4             | id3               | Sell | Filled       |
[INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_eq_available_qty ... ok
[INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_greater_than_available_qty ... ok
[INFO] [stdout] test matchers::prorata_matcher::tests::test_proportional_match ... ok
[INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_less_than_available_qty ... ok
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] test model::domain::tests::test_orderbookkey_hash ... ok
[INFO] [stdout] test model::domain::tests::test_partial_equals ... +--------+----------+-------+------+
[INFO] [stdout] ok
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] test model::domain::tests::test_fill_str ... +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 400      | 602.5 | Buy  |
[INFO] [stdout] ok+--------+----------+-------+------+
[INFO] [stdout] 
[INFO] [stdout] | IBM    | 300      | 602   | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 300      | 601.9 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 601.1 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 602.1 | Sell |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 400      | 602.5 | Sell |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] test model::domain::tests::test_print_md ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/matching_engine-c5fe82a47a340b15)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | TATA   | 20  | 602.5 | id8             | id7               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | TATA   | 20  | 602.5 | id7             | id8               | Sell | PartialFill  |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | TATA   | 30  | 602.5 | id9             | id7               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | TATA   | 30  | 602.5 | id7             | id9               | Sell | PartialFill  |
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 300      | 602   | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 300      | 601.9 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 601.1 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] test test_match_order_multiple_buy_orders_against_a_single_sell_order ... ok
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 602.1 | Sell |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | TATA   | 100      | 621   | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] test test_fifo_match_order_book ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fifo_matcher_tests.rs (/opt/rustwide/target/debug/deps/fifo_matcher_tests-15c21d90734df6c0)
[INFO] [stderr]      Running tests/pro_rata_matcher_tests.rs (/opt/rustwide/target/debug/deps/pro_rata_matcher_tests-0b27e6bf4f55cb3e)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 225 | 602.5 | id1             | id2               | Buy  | PartialFill  |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 225 | 602.5 | id2             | id1               | Sell | PartialFill  |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 75  | 602.5 | id3             | id2               | Buy  | PartialFill  |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 75  | 602.5 | id2             | id3               | Sell | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 75  | 602.5 | id1             | id4               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 75  | 602.5 | id4             | id1               | Sell | PartialFill  |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 25  | 602.5 | id3             | id4               | Buy  | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] | IBM    | 25  | 602.5 | id4             | id3               | Sell | Filled       |
[INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 300      | 602   | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 300      | 601.9 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 601.1 | Buy  |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | Symbol | Quantity | Price | Side |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] | IBM    | 100      | 602.1 | Sell |
[INFO] [stdout] +--------+----------+-------+------+
[INFO] [stdout] test test_match_order_book ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stderr]    Doc-tests matching_engine
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/matchers/fifo_matcher.rs - matchers::fifo_matcher::FIFOMatcher::match_order_book (line 167) ... ok
[INFO] [stdout] test src/common/utils.rs - common::utils::create_order_from_string (line 93) ... ok
[INFO] [stdout] test src/matchers/prorata_matcher.rs - matchers::prorata_matcher::ProrataMatcher::match_order_book (line 138) ... ok
[INFO] [stdout] test src/common/utils.rs - common::utils::read_input (line 45) ... ok
[INFO] [stdout] test src/common/utils.rs - common::utils::create_order_book (line 74) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.94s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1fbdd61fb25fd480e418881db5d08b8b34db71eaa78b1db2e0b541e6979c69a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fbdd61fb25fd480e418881db5d08b8b34db71eaa78b1db2e0b541e6979c69a2", kill_on_drop: false }`
[INFO] [stdout] 1fbdd61fb25fd480e418881db5d08b8b34db71eaa78b1db2e0b541e6979c69a2
